iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Python

Python探索之旅:從基礎到實踐系列 第 6

Day 6: 字典與集合 —— 基本操作與應用

  • 分享至 

  • xImage
  •  

1. 引言

Python 中的字典(Dictionary)與集合(Set)都是重要的資料結構。字典是鍵值對的集合,允許我們使用唯一的鍵來快速查找值;集合則是無序的、不允許重複的元素集合。今天的學習目標是掌握字典的基本操作,了解集合的應用場景,並通過練習題鞏固這些知識。


2. 字典 (Dictionary)

字典是一個可變的容器,允許我們通過鍵(Key)來存取對應的值(Value)。字典中的鍵必須是唯一的,並且是不可變的數據類型(如整數、字串或元組)。

2.1 字典的基本操作
  • 建立字典:使用大括號 {}dict() 函數來建立字典,鍵值對通過冒號 : 進行分隔。
person = {
    "姓名": "o",
    "年齡": 20,
    "職業": "學生"
}
  • 存取元素:通過鍵來存取對應的值,若鍵不存在會引發 KeyError 錯誤。
print(person["姓名"])  # 輸出: o
  • 新增或修改元素:可以通過指定鍵來新增或更新字典中的值。
person["城市"] = "台北"
print(person)  # 輸出: {'姓名': 'o', '年齡': 20, '職業': '學生', '城市': '台北'}
  • 刪除元素:使用 delpop() 方法可以刪除字典中的指定鍵值對。
del person["年齡"]
print(person)  # 輸出: {'姓名': 'o', '職業': '學生', '城市': '台北'}
  • 檢查鍵是否存在:可以使用 in 關鍵字來檢查某個鍵是否存在於字典中。
if "職業" in person:
    print("職業存在於字典中")
  • 迭代字典:可以迭代鍵、值或鍵值對。
for key, value in person.items():
    print(f"{key}: {value}")
2.2 字典的應用場景
  • 快速查找數據:字典能夠在常數時間內快速查找數據,非常適合用於數據映射與索引。
  • 配置參數:在程式設計中,字典經常用來儲存配置參數或設定。
  • 計數:可以使用字典來統計不同類別的次數。

3. 集合 (Set)

集合是一個無序的、不重複的元素集合,通常用來執行數學運算(如聯集、交集、差集)。集合中的元素必須是不可變的(例如整數、字串或元組)。

3.1 集合的基本操作
  • 建立集合:可以使用大括號 {}set() 函數來建立集合。
fruits = {"蘋果", "香蕉", "橘子"}
  • 新增元素:使用 add() 方法來向集合中新增元素。
fruits.add("葡萄")
print(fruits)  # 輸出: {'蘋果', '香蕉', '橘子', '葡萄'}
  • 刪除元素:使用 remove() 方法來刪除集合中的指定元素,若元素不存在則會引發錯誤。
fruits.remove("香蕉")
print(fruits)  # 輸出: {'蘋果', '橘子', '葡萄'}
  • 集合運算

    • 聯集:使用 union()| 運算符來取得兩個集合的聯集。
    set1 = {1, 2, 3}
    set2 = {3, 4, 5}
    union_set = set1 | set2
    print(union_set)  # 輸出: {1, 2, 3, 4, 5}
    
    • 交集:使用 intersection()& 來取得兩個集合的交集。
    intersection_set = set1 & set2
    print(intersection_set)  # 輸出: {3}
    
    • 差集:使用 difference()- 來取得一個集合相對於另一個集合的差集。
    difference_set = set1 - set2
    print(difference_set)  # 輸出: {1, 2}
    
3.2 集合的應用場景
  • 去重處理:集合的特性使其非常適合用來移除重複元素。
  • 集合運算:集合能夠高效地處理聯集、交集等運算,適合應用於數學集合操作。
  • 快速查詢:與字典類似,集合具有常數時間的查詢速度,非常適合用來檢查某元素是否存在於集合中。

4. 練習題目與解題過程

題目 1: 計算字母出現的次數

題目描述:輸入一段文字,統計每個字母出現的次數,並輸出結果。
解題思路

  • 使用字典來存儲每個字母的出現次數,並逐字母進行統計。

範例程式碼

text = "hello world"
count_dict = {}

for char in text:
    if char.isalpha():  # 只統計字母
        count_dict[char] = count_dict.get(char, 0) + 1

print(count_dict)  # 輸出: {'h': 1, 'e': 1, 'l': 3, 'o': 2, 'w': 1, 'r': 1, 'd': 1}
題目 2: 集合中的聯集與交集運算

題目描述:輸入兩個集合,計算它們的聯集與交集。
解題思路

  • 使用 union()intersection() 方法來計算兩個集合的聯集和交集。

範例程式碼

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

union_set = set1.union(set2)
intersection_set = set1.intersection(set2)

print(f"聯集: {union_set}")  # 輸出: 聯集: {1, 2, 3, 4, 5, 6}
print(f"交集: {intersection_set}")  # 輸出: 交集: {3, 4}
題目 3: 去除列表中的重複元素

題目描述:給定一個包含重複元素的列表,請使用集合來去除重複項。
解題思路

  • 使用集合自動去重的特性,將列表轉換為集合後再轉回列表。

範例程式碼

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers)  # 輸出: [1, 2, 3, 4, 5]

5. 結論

字典與集合是 Python 中兩個非常高效且常用的資料結構。字典的鍵值對操作提供了快速查詢與儲存數據的能力,而集合則提供了強大的數學集合運算與去重功能。在這次學習中,我們不僅掌握了它們的基本操作,還透過練習題加深了對字典和集合的應用理解。


上一篇
Day 5: 列表與元組 —— 操作、切片及使用場景
下一篇
Day 7: Python 介紹
系列文
Python探索之旅:從基礎到實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言